/**
 * Project SQLiteWrapper
 */


#ifndef _SQLITEWRAPPER_H
#define _SQLITEWRAPPER_H

#include <string>
#include <sqlite3.h>
#include "SQLiteStatus.h"
#include "SQLiteTable.h"
#include "ContentValues.h"

using std::string;

class SQLiteWrapper {
public: 
    
    bool is_open();
    
    /**
     * @param db_file
     */
    SQLiteStatus Open(const string& db_file);
    
    /**
     * @param sqlite_table
     */
    void Create(const SQLiteTable& sqlite_table);
    
    /**
     * @param table_name
     */
    void Insert(const string& table_name);
    
    /**
     * @param table_name
     * @param values
     */
    void Update(const string& table_name, const ContentValues& values);
    
    /**
     * @param table_name
     * @param where_condition
     */
    void Delete(const string& table_name, const string& where_condition);
private: 
    bool is_open_;
    sqlite3* sqlite3_handler_;
};

#endif //_SQLITEWRAPPER_H